package com.ruoyi.system.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 验收单实例实体类
 * 用于管理具体的验收单实例，关联消息推送任务
 * 
 * @author ruoyi
 * @since 2024-01-01
 */
@Data
@TableName("t_acceptance_checklist_instance")
public class AcceptanceChecklistInstanceDO {

    /**
     * 主键ID
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 验收单模板ID
     * 关联验收单模板表
     */
    @TableField("template_id")
    private Long templateId;

    /**
     * 项目ID
     * 关联项目表
     */
    @TableField("project_id")
    private Long projectId;

    /**
     * 施工阶段ID
     * 关联施工项目阶段表
     */
    @TableField("stage_id")
    private Long stageId;

    /**
     * 验收单实例名称
     */
    @TableField("instance_name")
    private String instanceName;

    /**
     * 关联的消息推送任务ID
     * 关联消息推送任务表
     */
    @TableField("msg_task_id")
    private Long msgTaskId;

    /**
     * 关联的消息推送子项ID
     * 关联消息推送任务子项表
     */
    @TableField("msg_item_id")
    private Long msgItemId;

    /**
     * 验收人H5用户ID
     */
    @TableField("h5_user_id")
    private Long h5UserId;

    /**
     * 验收人姓名
     */
    @TableField("h5_user_name")
    private String h5UserName;

    /**
     * 验收状态
     * PENDING-待验收, IN_PROGRESS-验收中, COMPLETED-已完成
     */
    private String status;

    /**
     * 提交时间
     */
    @TableField("submit_time")
    private LocalDateTime submitTime;

    /**
     * 创建人
     */
    @TableField("create_by")
    private String createBy;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private LocalDateTime createTime;

    /**
     * 更新人
     */
    @TableField("update_by")
    private String updateBy;

    /**
     * 更新时间
     */
    @TableField("update_time")
    private LocalDateTime updateTime;

    /**
     * 逻辑删除标识
     * 0-存在, 1-删除
     */
    @TableField("is_deleted")
    @TableLogic
    private Integer isDeleted;
}

